本博文提供一个单网页结构网页(SPA)使用React Router路由控制跳转的完整例子。
可以在我的github 中clone或者fork
https://github.com/zrysmt/react-demo/tree/master/demo03
关于配置可以查看我之前的一篇博客:一步一步进入React的世界(React+Webpack+ES6组合配置)。
1.整个目录结构
- build是编译后的文件夹
- src 放入源码
- components组件
- global 通用组件和SCSS
- … 分模块
- app.js入口
- components组件
- index.html
2.源码
关于源码可以在开头给出的github中找到详细的完整例子,这里就介绍重要的几个文件源码
记住要安装react-router
1 | npm i react-router -S |
2.1 index.html
1 |
|
2.2 入口文件app.js
关于react router的基础知识我们可以参考阮一峰老师的博客作为入门指导。
1 | import React from 'react'; |
简单解释下:
组件App除了包含Nav组件,还应该包括主体内容
当使用index.html访问的时候,是在项目根目录下,这样会先加载APP组件,APP组件包含{this.props.children}
,便会加载<IndexRoute/>
里面定义的组件Home。用户访问’/‘相当于:
1 | <App> |
2.3 Nav组件
/components/global/menuLi.jsx
/components/global/menu.jsx
- 最小一块组件menuLi.jsx
1 | import React from 'react'; |
Link
组件用于取代<a>
元素,生成一个链接,允许用户点击后跳转到另一个路由
- Nav组件 menu.jsx
1 | import React from 'react'; |
2.4 Home组件
/components/home/home.jsx,示例比较简单
1 | import React from 'react'; |
2.5 Story组件
1 | import React from 'react'; |
其余几个组件不一一列出了
可以在我的github 中clone或者fork,查看完整的例子代码
参考阅读: